package cn.good.yan.config;

import feign.Logger;
import feign.Retryer;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * FeignConfig 的配置类
 *
 * @author shengren.yan
 * @create 2024-04-13
 */
@Configuration
public class FeignConfig {

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    @Bean
    public Retryer myRetryer() {
        return Retryer.NEVER_RETRY; // Feign默认配置是不走重试策略的
        // 最大请求次数为3(1+2)，初始间隔时间为100ms，重试间最大间隔时间为1s
        // return new Retryer.Default(100,1,3); 【如果请求失败，会重试再次请求】
    }

    // feign的日志打印级别    NONE 、BASIC、HEADERS 、FULL
    @Bean
    Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }

// feign的日志打印
//# feign日志以什么级别监控哪个接口
//#logging:
//            #  level:
//            #    cn:
//            #      good:
//            #        yan:
//            #          xxx:
//            #            PayFeignApi: debug

}
